#ifndef __SPRITE_HPP__
#define __SPRITE_HPP__

#include "../Mathematics/MVector3D.hpp"
#include "../Entities/BaseEntity.hpp"
#include "../ResourceManagers/TextureObject.hpp"
#include <string>

class Sprite : public BaseEntity
{
public:
	Sprite(std::string name, MVector3D& origin, float fScaleX = 1.0f, float fScaleZ = 1.0f, TexType eTextureType = TEXTURE_STANDARD);
	~Sprite();

	void  render();
	void  Translate(MVector3D& translation);
	void  SetScaleX(float& fScale);
	void  SetScaleZ(float& fScale);
	
	float& GetScaleX();
	float& GetScaleZ();

protected:
	bool         m_bToRender;
	float        m_fScaleX;
	float        m_fScaleZ;
	MVector3D    m_origin;
	MVector3D    m_translation;
	std::string  m_name;
	TexType      m_eTextureType;

};

#endif // __SPRITE_HPP__